Digital versatile discs (DVDs) are information storage devices used for storing prerecorded audio information, movies and computer software. The storage mechanism used in DVDs closely resembles that used in compact discs (CDs). DVD players also use the same laser technology as CD players. Briefly, both DVDs and CDs store information as a pattern of pits formed in a metallic substrate. The pit patterns form digital words and can be read by shining a laser beam on the disc surface and detecting the reflected beam. The information storage capacity of a typical DVD, however, is much higher than a CD. Presently available DVDs have a variety of capacities which depend on the technology used to manufacture the discs. Single-layer technologies can be either single or double-sided with capacities of 4.7 gigabytes and 9.4 gigabytes, respectively. Dual layer technologies are available which use single or double sided capacities that hold approximately 8.5 gigabytes per side. This high information storage capacity makes DVDs suitable for storing not only audio information, but also video information and large amounts of computer data as well.
DVD players have many CD player features, such as the ability to play selections in any order desired and the ability to read information from any point on the disc. However, DVDs can store information in several formats. For example, DVDs which are used to store video information, hereinafter called DVD-VIDEO discs, may use various known information compression algorithms, such as MPEG-2 for video compression/decompression. A DVD may also include high fidelity sound as well. In addition, a DVD may also store uncompressed linear pulse code modulated data streams which have sample rates between 48-96 kHz and are sampled at 16 or 24 bits. Still other DVD versions, hereinafter called DVD-ROM discs, can store digital data for computer use, and the data may also be compressed on these discs.
Although DVD-ROM and DVD-VIDEO discs share compression algorithms, the data format on DVD-VIDEO discs is significantly different than the data format found on DVD-ROM discs. One important difference is that the data content on DVD-ROM is platform-specific, while DVD-VIDEO discs operate with a platform independent navigation engine for playing interactive movies. This navigation engine requires that the files on the DVD-VIDEO disc be referenced in a predetermined directory structure.
In particular, each DVD-VIDEO disc contains a main directory denoted as a VIDEO.sub.-- TS directory which contains two types of files distinguished with the file extensions .IFO and .VOB. During playback, these files are sorted by a DVD video player to form video "title" sets, which are groupings of all files necessary to play a particular DVD video "title", for example, a movie. Each video title set is composed of one .IFO file and one or more .VOB files.
A file with the .VOB extension contains the actual multimedia data and is called a video object set. The location and format of the multimedia data stored in the video object set is defined by the associated .IFO file. In particular, .IFO files contain navigational data structures and a processor-independent interpreted language which specifies how the data structures are arranged.
The data structures themselves are composed of various objects called "program chain objects", "program objects", and "cell objects". Program chain objects link related program objects e.g., particular scenes, within a title and their data structures govern the playback of the program objects. For example, a simple title may contain only one program chain. However, complex titles may contain two or more program chains to allow random access to a variety of programs. The multiple program chain title can play programs linearly, randomly or in a "shuffle" mode.
Each program object in a program chain is composed of elements called "cell objects". These objects instruct a DVD player which portion of the multimedia data in one of the .VOB files to decode. In particular, the data structures in a cell object are defined in the .IFO file and the multimedia content is found in one of the .VOB files. Each cell object directs the DVD player to begin playback at a specific location in the .VOB file which is referred to as a video object unit or "VOBU". A VOBU is a container object that includes both navigational data as well as multimedia data.
Navigational input can also be obtained directly from a user by means of navigational buttons which are displayed under playback program control onscreen along with the multimedia data. The playback program controls both the time duration that the button appears on the screen and the manner that the system responds to the selection of a button by a user. For example, user selection of a button may cause the playback program to jump to a new location on the disc and begin playback at the new location.
The specific navigational commands which are recognized by a DVD player are controlled by a device independent language and a set of DVD player parameters which define the current state of the DVD player. These navigational commands can be broken into several categories including the following: Set, SetSystem, GoTo, Link, Jump and Compare.
Set commands permit primitive operations, such as assignment operations, to manipulate the values of selected stored parameters and include: Mov, Swp, Add, Sub, Mul, Div, Mod, Rnd, And, Or, and Xor. SetSystem commands are used to set the internal system parameters of the player and include: SetSTN, SetNVTMR, Set GPRMMD, SetAMXMD, and Set.sub.-- BTNN. GoTo commands are used to skip to a specific instruction number in the instruction stream and Link and Jump commands cause program execution to jump to various locations within a title or menu on the disc. Link instructions include: LinkPGCN, LinkPTTN, LinkPGN, LinkCn, and LinkSlns. Compare commands allow value testing on either a system or user parameter. The DVD command set, including the aforementioned commands and their definitions, are published in the DVD specification. A copy of the DVD 1.0 Specification for Read-Only Disc Vol. 3, including a more detailed description of all DVD commands, may be obtained, for example, from Toshiba Corp., 1-1 Shibaura 1-Chome, Minato-ku, Tokyo 105-01 Japan.
The DVD navigation commands provide an efficient way to move to different locations on a DVD disc under program control. Typically, the commands required to play disc titles are downloaded from the DVD disc and processed before the player begins playback. That is, the playback system typically downloads navigational information from the disc and processes that information before it even begins to play a title. This permits the playback system to assemble navigational commands in a manner which is, for example, responsive to a parent's supervision, allowing the system to "skip" sections of a title that contain objectional material. In order to reduce DVD disc accesses, and thereby improve system response time, all the disc's navigational information is typically downloaded from the disc and stored in a relatively high speed memory, or cache.
Each DVD command typically occupies eight bytes of code. The DVD specification enables some commands to occupy only 4 bytes. DVD command streams are frequently "bloated" with unnecessary commands. Since the DVD command language is a platform-independent interpreted language, conventional compiled code optimizers cannot be used to optimize the DVD command stream.
Another way in which DVD playback is limited involves the processing of commands to form a navigation stream. After downloading the navigational commands, an execution unit processes the commands to produce a navigation stream for the DVD player. The speed with which commands are processed by the execution unit limits the speed at which playback may commence or shift from one title on the DVD disc to another.
A need exists for DVD playback system which optimizes navigational commands and which accelerates the execution of those commands would therefore be highly advantageous.
A further need exists for a method and system in which two commands may be compressed to significantly increase a system's operational speed by eliminating disk accesses. A further need exists for a system in which commands may be executed in parallel to accellerate command execution.